TEXTURE SETS DOCUMENTATION
Version: 1.21.60.24

This is documentation for a preview release of Minecraft. New features, components, and capabilities in this release are not final and might change without notice before the final release.
Be sure to check the documentation once the release is out of preview if your add-on isn't working properly. Resource and Behavior Packs created for the preview are not guaranteed to work on the final release.

Index

Texture Sets
Texture Set Json Schema
Layers
Specifying uniform values
Examples of *.texture_set.json files
Invalid *.texture_set.json
Resource Stack Behaviour
Referencing Texture Resources

Texture Sets

Minecraft supports a Physically Based Rendering (PBR) color pipeline (e.g., used for Ray Tracing). This uses more texture data than simply 'color' to enable richer, more realistic visuals. With the PBR approach, you can have layers for different specular reflections, emissivity, normal maps, etc., which goes beyond the Classic color pipeline for Vanilla Minecraft. Texture Sets have been added as the feature for defining multiple PBR layers for a texture resource. Texture sets are data-driven from JSON files.

Back to top

Texture Set JSON Schema

The schema defines the structure for JSON files used in texture sets.

{
"format_version": "1.16.100",
"minecraft:texture_set": {
  "color": "color_texture",
  "normal": "normal_texture",
  "heightmap": "heightmap_texture",
  "metalness_emissive_roughness": "mer_texture"
}
}
Back to top

Layers

A texture_set.json file may specify several layers. Layers are references to texture image resources or can be defined in JSON as uniform solid values.

Color

Back to top

Normal

Back to top

Heightmap

Back to top

Metalness, Emissive, Roughness

Back to top

Specifying Uniform Values

Instead of referencing a texture image for a Texture Set layer, values can be specified in the texture_set.json file. The values in the JSON can be specified in the following formats:

Back to top

Examples of *.texture_set.json Files

Back to top

Invalid *.texture_set.json

If a Texture Set is invalid, the system logs a CONTENT_ERROR and the Texture Set will not be used. A Texture Set is invalid if:

Back to top

Resource Stack Behavior

Back to top

Referencing Texture Resources

The priority of file extensions, in case of duplicate image references, is: .tga > .png > .jpg > .jpeg. For example, if grass.png and grass.tga both exist, grass.tga will be chosen.

Back to top